All courses
EMB 201
Term 3
4 credits
Embedded C and Data Structures
This course delves into C programming principles, emphasizing memory management, pointers, and low-level hardware interaction crucial for embedded systems. Students will learn to implement and utilize essential data structures such as arrays, linked lists, and queues, applying them in resource-constrained embedded environments. Practical exercises will build proficiency in developing efficient and robust code for microcontrollers.
Prerequisites
Course outline
Lectures, virtual labs, and graded assignments — completed in your browser.
01Introduction to Embedded C and Development Environmentlecture
02C Fundamentals: Data Types, Operators, Control Flowlecture
03Functions, Scope, and Storage Classes in Clecture
04Lab 1: Basic I/O and Control Flow on a Microcontrollerlab
05Pointers and Memory Managementlecture
06Arrays and Strings in Embedded Clecture
07Structures, Unions, and Enumslecture
08Lab 2: Pointer Arithmetic and Array Manipulationlab
09Introduction to Data Structures: Arrays vs. Dynamic Structureslecture
10Linked Lists: Single, Double, and Circularlecture
11Stacks and Queues Implementationlecture
12Assignment 1: Implementing a Basic Data Structure (e.g., linked list for sensor data)assignment
13Comprehensive Midterm Reviewlecture
14Final Review and Project Discussionassignment
Syllabus
### Course Description This 4-credit course provides a foundational understanding of C programming and classic data structures tailored for embedded systems engineering technology. Students will master C language constructs, memory management, and pointers, alongside implementing essential data structures like arrays, linked lists, and queues, all within the context of microcontroller programming and resource-constrained environments. Practical application and efficient code development are emphasized. ### Learning Outcomes * Design and implement C programs leveraging core language features for embedded applications. * Effectively utilize pointers and manage memory for optimal performance in embedded systems. * Implement and apply fundamental data structures (arrays, linked lists, stacks, queues) in C for solving embedded problems. * Develop efficient and robust C code suitable for microcontrollers, considering constraints like memory and processing power. * Debug and troubleshoot C programs and data structure implementations in an embedded context. ### Assessment Breakdown * Quizzes: 15% * Lab Assignments: 35% * Programming Projects (Assignments): 25% * Midterm Exam: 15% * Final Exam: 10% ### Policies * **Attendance**: Regular attendance in lectures and labs is expected. Missed lab sessions may impact grades significantly. * **Late Submissions**: Late assignments will incur a penalty of 10% per day, up to a maximum of 3 days, after which they will not be accepted. * **Academic Integrity**: All work submitted must be original. Plagiarism or cheating will result in a failing grade for the assignment/course and further disciplinary action as per institutional policy. * **Disability Services**: Students with disabilities who may need accommodations in this class are encouraged to contact the Disability Services office early in the semester.